package com.qf.hospital.VO;

import com.qf.hospital.enums.HospitalExceptionEnum;

import java.util.HashMap;

/**
 * @author 何星宇
 * @version V1.0
 * @Date 2021/10/9 11:46
 */
public class R extends HashMap {
    /**
     * 操作成功，返回code和msg
     * @return
     */
    public static R ok(){
        R r = new R();
        r.put("code", 0);
        r.put("msg", "");
        return r;
    }

    public static R ok(String msg){
        R r = new R();
        r.put("code", 0);
        r.put("msg", msg);
        return r;
    }

    /**
     * 操作成功，返回code、msg和data
     * @return
     */
    public static R ok(Object data){
        R r = R.ok();
        r.put("data", data);
        return r;
    }

    /**
     * 操作成功，返回code、msg、count和data
     * @return
     */
    public static R ok(Object data , long count){
        R r = R.ok();
        r.put("data", data);
        r.put("count", count);
        return r;
    }

    /**
     * 操作失败，返回指定号的错误码code和错误信息msg
     * @param code
     * @param msg
     * @return
     */
    public static R error(int code , String msg){
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    /**
     * 枚举的形式返回错误码和错误信息
     * @param exceptionEnum
     * @return
     */
    public static R error(HospitalExceptionEnum exceptionEnum) {
        R r = new R();
        r.put("code", exceptionEnum.getCode());
        r.put("msg", exceptionEnum.getMsg());
        return r;
    }

    public static R error(HospitalExceptionEnum exceptionEnum, String msg) {
        R r = new R();
        r.put("code", exceptionEnum.getCode());
        r.put("msg", exceptionEnum.getMsg()+"--"+msg);
        return r;
    }
}
